<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Changelog | Raxan User Guide</title>
    <link href="../raxan/styles/master.css" rel="stylesheet" type="text/css" />
    <!--[if IE]><link rel="stylesheet" href="../raxan/styles/master.ie.css" type="text/css"><![endif]-->
    <link href="style.css" rel="stylesheet" type="text/css" />
    <link href="highlight/styles/default.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="highlight/highlight.js"></script>
    <script type="text/javascript">
        hljs.initHighlightingOnLoad('javascript','html','php');
    </script>

</head>

<body>
    <div class="container c48 prepend-top">
        <h2 class="bottom">Raxan User Guide</h2>
        <div class="navbar">
            <div class="lf"><div class="rt"><div class="md">
                <ul>
                    <li><a href="../index.html" title="The Rich Ajax, CSS &amp; PHP Framework" >Home</a></li>
                    <li><a href="table-of-contents.html" title="Blog Posts" >Table Of Contents</a></li>
                    <li><a href="../php-examples/index.php" title="PHP Examples" >PHP Examples</a></li>
                    <li><a href="../css-examples/index.html" title="User Guide" >CSS Examples</a></li>
                </ul>
            </div></div></div>
        </div>
        <div class="prepend1 append1">
            <div class="ltm" align="right">
                <a href="table-of-contents.html" title="Show Table of Content">
                    <img src="images/toc-button.png"  alt="Table of Contents" />
                </a>
            </div>
            <h2>Raxan Changelog</h2>

<h2>1.0 Beta3</h2>

<ul>
<li>Refactor Raxan classes and functions. Classes are now prefixed with Raxan</li>
<li>Update examples to work with new class names</li>
<li>New system wide events added: page_load, page_prerender, page_postrender</li>
<li>New append() and prepend() methods added to RaxanWebPage</li>
<li>Add static RaxanWebPage::addMethod(). Used to extend the page class</li>
<li>Add local and global state management features to RaxanElement. Use either preserveState() method or the xt-preserveState extended attribute</li>
<li>Add masterTemplate and masterContentBlock properties to RaxanWebPage</li>
<li>Add convenient Raxan::dataSantizer($array = null) method. Loads the RaxanDataSanitizer class on first use.</li>
<li>Add autostart option to the configuration file</li>
<li>Add endResponse() to RaxanWebPage</li>
<li>Add sendError() wrapper to RaxanWebPage</li>
<li>Add Session and Page Data Storage classes: RaxanDataStore,  RaxanSessionStorage and RaxanWebPageStorage</li>
<li>Add new config options page.data.storage and session.data.storage. See gateway.config.sample.php</li>
<li>Add serializeOnPostBack option to RaxanWebPage</li>
<li>Add $degradable property to RaxanWebPage</li>
<li>Add uniqueId() method to RaxanElement</li>
<li>Add dynamic properties via __get() to RaxanDataSanitizer</li>
<li>Add suppport for Inline Events with extended attributes xt-bind, xt-delegate, xt-autoupdate</li>
<li>Add textval(), intval(), and floatval() to RaxanElement. These will be used to sanitize form input element values</li>
<li>Add textval(), intVal(), and floatval() to RaxanWebPageEvent. These will be used to sanitize form input event values</li>
<li>Add val() method to RaxanWebPageEvent</li>
<li>Add new RaxanUIElement class</li>
<li>Add sanitizePostBack() to RaxanWebPage</li>
<li>Add autoId() to RaxanElement</li>
<li>Add htmlMarkup() to RaxanElement</li>
<li>Add updateClient to RaxanElement</li>
<li>Add throwCallbackException() static method  to Raxan class. Update code to use this method when throwing callback exceptions</li>
<li>Add autostart.php file to pdi folder</li>
<li>Add _prerender() and _load() event handlers to RaxanUIElement.</li>
<li>Add feature to return RaxanElements by id based on page property name (e.g. $page->elementId->html('Cool!') )</li>
<li>Fix event binding issue when page does not contains a head tag</li>
<li>Fix issue when adding more than one plugin to a page</li>
<li>Fix issue with Raxan::importCSV() which failed to handle invalid rows</li>
<li>Fix bug when converting css to xpath for class names</li>
<li>Fix issue when loading plugins. Make sure Raxan has been initialized</li>
<li>Fix issue with loadCSS() and external files.</li>
<li>Modify RaxanWebPage to insert action scripts when page does not contain a &jt;head&gt; tag</li>
<li>Modify css() method to remove CSS property when value is  set to ''</li>
<li>Modify Raxan::connect() to return an instance of the RaxanPDO Class</li>
<li>Modify Rich Tabstrip to support non-ajax hyperlinks</li>
<li>Modify Ajax timeout message to display "Error while connecting to Server" instead of "Error while making a callback"</li>
<li>Change: The _reset() event handler is now invoked on the first attempt to set or get data when $page->resetonFirstPageLoad = true</li>
<li>Change: The _switchboard() handler is now invoke before the _load() handler</li>
<li>Move RaxanDataSanitizer class to a separate file (raxan.datasanitizer.php).</li>
<li>Move RaxanPlugin to raxan.php and make it an abstract class</li>
<li>Improve accessibility for form submit buttons, hyperlinks and image maps.</li>
<li>Reset session cookie timeout on page bpost back or refresh. See the RaxanSessionStorage class.</li>
<li>Automatically serialize and post back form elements if the click event of a submit button was triggered without a serialize option</li>
<li>Deprecate session.handler config option</li>
<li>Set the default value for $resetDataOnFirstLoad to true on RaxanWebPage</li>
<li>Rename variable $isPostback to $isPostBack on RaxanWebPage. Depcreate $isPostback</li>
<li>Rename protected variables on RichWebPage</li>
<li>Deprecate $page->clientRequest(). Use sanitizePostBack()</li>
<li>Rewrite RaxanPlugin logic. Add support for support system events</li>
<li>Remove $page->unregisterPlugin() method</li>
<li>Set default page header to text/javascript when page is in embedded mode</li>
</ul>

<h2>1.0 Beta 2</h2>

<ul>
<li>New Switchboard feature</li>
<li>New RichPlugin class</li>
<li>New addMethod() for the RichElement class - used for adding extensions to the class</li>
<li>New _switchboard() handler added to RichWebPage</li>
<li>New "edited" and "tplEdit" options added to RichAPI::bindTemplate()</li>
<li>New imageResample() and imageSize() methods added to RichAPI class</li>
<li>New system events page_init, page_reply, session_init and system_init added</li>
<li>New bindSysEvents and triggerSysEvents added to RichAPI</li>
<li>New _reset() handler added to RichWebPage. This is invoked when resetOnFirstLoad is set to true</li>
<li>New preserveState added RichElement - Preserves the postback state of the matched form elements</li>
<li>New sendToClient(), prependToClient(), appedToClient() and replaceClient() added RichElement</li>
<li>New - Embed Raxan Ajax appications inside a web page</li>
<li>Add RaxanPreInit loading to startup.js</li>
<li>Add jquery-tools library (overlay,expose,tooltip,tab and scrollable)</li>
<li>Add Rich Web Page default settings to configuration option.</li>
<li>Add event options to triggerEvent()</li>
<li>Add API chaining support to RichClientExtension methods such as prompt,confirm, etc</li>
<li>Add support for client-side native json parser</li>
<li>Add $startupEvent to addScript(). For example: $page->addScript('alert("Ready!")', 'ready');</li>
<li>Add $defaultBindOptions to RichWebPage</li>
<li>Add registerScript($name,$url) to RichWebPage</li>
<li>Add click(fn,serialize) and submit(fn,serialize) as ajax event helpers wrappers with autoDisable set to true</li>
<li>Add italian locale - contributed by a.daniello</li>
<li>Add soft color classes to master stylesheet. e.g. softgreen, softblue, etc</li>
<li>Add PHP_VERSION_ID for versions &lt; 5.2.7</li>
<li>Add support for PHP 5.3.0</li>
<li>Fix to serialize form elements with similar names as php arrays. See startup.js</li>
<li>Fix to retrieve event value from e.currentTarget when making a call to the server. See startup.js</li>
<li>Fix issue to prevent event from being triggered is element is disabled and autoDisable set to true.</li>
<li>Fix issue with page data resetOnFirstLoad</li>
<li>Fix bug in RichAPI::locale()</li>
<li>Fix issue when prepend() is used with multiple selectors.</li>
<li>Fix Typo in documentation</li>
<li>Fix matchSelector() when selector is an html string</li>
<li>Fix when used with button element</li>
<li>Fix to prepend jQuery library to the scripts collection if it's implicitly loaded by the framework</li>
<li>Fix issue when decoding json content with the RichAPI::JSON()</li>
<li>Fix html.load() function when called a second time after page load</li>
<li>Fix html.ready() function when called a second time after page ready</li>
<li>Fix issue #4:  When calling C() in php versions &lt; 5.2.0 nothing happens. This is because the __toString() method was not called when combining actions</li>
<li>Fix Dynamic element creation when page controller no initialized</li>
<li>Remove dynamic form elements after postback in html.post();</li>
<li>Modify RichWebPage to Bind events after action scripts. This will allow dynmically generated elements to work with bind. Example $page['&lt;button value="Click" /&gt;']->bind('click','cb']->sendToClient('body');</li>
<li>Escape html spcecial characters RichWebPage->clientPostbackUrl</li>
<li>Enable session.timeout config option. Defaults to 30 minutes. Set to 0 to use PHP's default</li>
<li>Rename RichWebPage->updateFormOnPostback to preserveFormContent. Deprecate updateFormOnPostback</li>
<li>Modify RichAPI::config() to return config array if key is null</li>
<li>Rename google-extractor to web-page-extractor</li>
<li>Change scope from private to protected for RichClientExtension::$chain</li>
<li>Upgrade jquery ui effects and interaction libraries to 1.7.2</li>
</ul>

<h2>1.0 Beta 1</h2>

<ul>
<li>Update documentation</li>
<li>Update jQuery UI interactions library to version 1.7.1</li>
<li>Merge Blueprint 0.8 changes/fixes into Raxan CSS</li>
<li>Remove adodb test suite from adodb-time.inc.php</li>
<li>Add findById() and findByXPath() to RichWebPage</li>
<li>Add disable(), enable(), hide(), show() methods to RichElement</li>
<li>Add getElementById() to RichWebPage</li>
<li>Add new css selectors: :odd, :even, :empty, :contains(text), [attribute!=value], [attribute$=value], [attribute^=value], [attribute$=value], [attribute*=value], [attribute~=value] (case-insensitive lookup)</li>
<li>Add uiDraggable,uiHelper,uiSender to RichEvent</li>
<li>Add support for before and after script execution. See bind() options</li>
<li>Add RichAPI::paginate() with support for {FIRST},{LAST},{NEXT},{PREV} template fields</li>
<li>Add RichWebPage->addCSS()</li>
<li>Fix decimal typo in RichDataSanitzer->float()</li>
<li>Remove $is_dst parameter from adodb-time.inc</li>
<li>Replace default/theme header class with tbl-header</li>
<li>Add support for loading remote web pages via the http:// protocol</li>
<li>Auto detect file type (xml or html) when file is directly passed to RichWebPage constructor</li>
<li>Add special fields names {INDEX}, {VALUE} and {ROWCOUNT} to template binder. The value and index fields are only availble when binding to index based arrays</li>
<li>Add support for binding templates to index-based arrays and RichWebPage elements</li>
<li>Add Template Binder function - RichAPI::bindTemplate()</li>
<li>Fix issue when binding to keypress on input boxes. Set preventDefault to true for server-side click and submit events. </li>
<li>Add autoToggle and autoDisable to RichWebPage->bind() options</li>
<li>Modify Raxan.triggerRemote() js function to now accept options as last parameter</li>
<li>Add support for loading blank html/wml web pages. Usage $page->source('html:page') or $page->source('wml:page');</li>
<li>And support for WML pages</li>
<li>Add optional $type parameter to RichWebPage::_constructor(). $type values:  xml, html</li>
<li>Add XML support to RichWebPage and RichDOMDocument</li>
<li>Replace RichDOMDocument getHTMLSource() and setHTMLSource() with a single source() method</li>
<li>Fix: Broken HTML <body> tag when responding to Ajax File uploads</li>
<li>Add $page->showRenderTime</li>
<li>Modify lcoale date and currency settings for fr and es</li>
<li>Fix: Template {tags} not rendered when used inside a hyperlink </li>
<li>Add commonly used words to locale files</li>
<li>Add RichAPI::sendError() - supports 400, 401, 403, 404</li>
<li>Add RichWebPage::halt($msg) method</li>
<li>Fix: RichElement->val()  - Add support for <option> tags without value attribute.</li>
<li>Remove the unused useDOMClass() function</li>
<li>Fix: Documentation link - reported by Steen. See issue #3</li>
<li>Fix: Link button displayed incorrectly in IE7 - reported by Steen. See issue #2</li>
<li>Fix: Javascript error in webform example - reported by Steen. See issue #1</li>
<li>Fix: Json encoding issues when passing _event() to an array</li>
<li>Fix: Issue with resetDataOnFirstLoad, updateFormOnPostback and postback</li>
<li>Fix: Calling removeData() before session init</li>
<li>Fix: Calling P() without a selector</li>
<li>Add text/javascript to script tags generated by addScript()</li>
<li>Add optional parameters $name and $registerGloabal to _var() function. The $name parameter assigns a name of the js variable while $registerGloabal (boolean) will make the variable globally accesible from within the client. Usage: _var('Hello World','msg', true);</li>
<li>Add createElement to RichWebPage</li>
<li>Add new PDI examples</li>
</ul>

<h2>1.0 Alpha 3</h2>

<ul>
<li>Update jQuery to 1.3.2</li>
<li>Update jQuery-UI to 1.7</li>
<li>Add PDI Extension</li>
<li>Replace header class with tbl-header</li>
<li>Add new Sortable Columns example</li>
<li>Add master-layout.css and master-ui.css. The master.css file is a combination of both master-layout.css and master-ui.css</li>
<li>Change version number to 1.0 Aplha 3</li>
</ul>

<h2>0.2.1 Alpha 2</h2>

<ul>
<li>Fix issue with TabStrip Explorer custom animations when tabs are randomly clicked</li>
<li>Add fix for tabstrip in IE6</li>
</ul>

<h2>0.2 Alpha 2</h2>

<ul>
<li>Updated documentation and exmaples</li>
<li>Updated the Credits page</li>
<li>Add rich/tabstrip plugin - built-in ajax support, css themes/skins, custom animations and autopilot features.</li>
<li>Add elastic cell width and height classes</li>
<li>Add caps and fancy classes to master.css</li>
<li>Add rich/cursor plugin</li>
<li>Move IE CSS filter to master.ie.css</li>
<li>Fix CSS class push5 right margin</li>
<li>Fix variable scope in startup.js</li>
</ul>

<h2>0.1 Alpha 1</h2>

<ul>
<li>First release</li>
</ul>

        </div>
        <div class="tpb pad" style="text-align:right">
            <div class="right ltm">
                <a href="table-of-contents.html" title="Back to Table of Content">
                    <img src="images/toc-button.png"  alt="Table of Contents" />
                </a>
            </div>
        </div>
    </div>
</body>

</html>

